package java_learn.java_jinjie.object;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*
 Dateformat 时间日期文本转换
 作用：1.格式化（日期->文本）
      2.解析 (文本->日期)
  成员方法：
  1.String foramt(Date date) 按照指定的日期，把date日期，格式化为符合模式的字符串
  2.Date Parse(String source)把符合模式的字符串，解析为Date日期
 */
public class DemoDateFormat {
    //计算出生了多少天
    public static void function() throws Exception {
        System.out.println("请输入出生日期 格式 YYYY-MM-dd");
        // 获取出生日期,键盘输入
        String birthdayString = new Scanner(System.in).next();
        // 将字符串日期,转成Date对象
        // 创建SimpleDateFormat对象,写日期模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        // 调用方法parse,字符串转成日期对象
        Date birthdayDate = sdf.parse(birthdayString);
        // 获取今天的日期对象
        Date todayDate = new Date();
        // 将两个日期转成毫秒值,Date类的方法getTime
        long birthdaySecond = birthdayDate.getTime();
        long todaySecond = todayDate.getTime();
        long secone = todaySecond - birthdaySecond;
        if (secone < 0) {
            System.out.println("还没出生呢");
        } else {
            System.out.println(secone / 1000 / 60 / 60 / 24);
        }
    }

    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        // 创建日期格式化对象,在获取格式化对象时可以指定风格
        DateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
        String str = df.format(date);
        System.out.println(str); // 2008年1月23日

        DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
        String str2 = "2018年12月11日";
        Date date2 = df2.parse(str2);
        System.out.println(date2); // Tue Dec 11 00:00:00 CST 2018

    }
}
